using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using JSON;

public class JSONSkillEx{
	#region 单例
	private static JSONSkillEx instance;
	public static JSONSkillEx getInstance(){
	if (instance == null)
		instance = new JSONSkillEx ();
		return instance;
	}
	#endregion

	#region 变量
	private JSONNode json;
	private JSONNode JSONData{
		get{
			if(json == null)
				json = JsonRead.Read("JSONSkillEx");
			return json;
		}
	}
	#endregion
	#region 外部调用
	public void Clear(){
		json = null;
	}
	public JSONNode GetJSON(string key){
		return JSONData [key];
	}
	public JSONNode GetJSON(int index){
		return JSONData [index];
	}
	/// <summary>
	/// 有多少个数据
	/// </summary>
	public int GetCount(){
	return JSONData.Count;
	}

    /// <summary>
	/// GetJSONNodeList Like Target
	/// </summary>
	public int[] GetListID(int target){
		List<int> list = new List<int>();
		for (int i = 0; i < GetCount(); i++) {
			if( GetID(i) == target)
				list.Add(i);
		}
		return list.ToArray();
	}
	/// <summary>
	/// 
	/// </summary>
	public int GetID(string key){
		JSONNode json = GetJSON (key);
		int  value;
		value = json["ID"].AsInt;
		return  value;
	}
	/// <summary>
	///  :From Index
	/// </summary>
	public int GetID(int index){
		int value;
		JSONNode json = GetJSON (index);
		if(json == null){
			value = GetID(index.ToString());
			return  value;
		}
		value = json["ID"].AsInt;
		return  value;
	}
    /// <summary>
	/// GetJSONNodeList Like Target
	/// </summary>
	public int[] GetListSkillName(string target){
		List<int> list = new List<int>();
		for (int i = 0; i < GetCount(); i++) {
			if( GetSkillName(i) == target)
				list.Add(i);
		}
		return list.ToArray();
	}
	/// <summary>
	/// 
	/// </summary>
	public string GetSkillName(string key){
		JSONNode json = GetJSON (key);
		string  value;
		value = json["SkillName"].ToString();
		return  value;
	}
	/// <summary>
	///  :From Index
	/// </summary>
	public string GetSkillName(int index){
		string value;
		JSONNode json = GetJSON (index);
		if(json == null){
			value = GetSkillName(index.ToString());
			return  value;
		}
		value = json["SkillName"].ToString();
		return  value;
	}
    /// <summary>
	/// GetJSONNodeList Like Target
	/// </summary>
	public int[] GetListChargeEffect(string target){
		List<int> list = new List<int>();
		for (int i = 0; i < GetCount(); i++) {
			if( GetChargeEffect(i) == target)
				list.Add(i);
		}
		return list.ToArray();
	}
	/// <summary>
	/// 蓄力特效 (null=没有特效) 
	/// </summary>
	public string GetChargeEffect(string key){
		JSONNode json = GetJSON (key);
		string  value;
		value = json["ChargeEffect"].ToString();
		return  value;
	}
	/// <summary>
	/// 蓄力特效 (null=没有特效)  :From Index
	/// </summary>
	public string GetChargeEffect(int index){
		string value;
		JSONNode json = GetJSON (index);
		if(json == null){
			value = GetChargeEffect(index.ToString());
			return  value;
		}
		value = json["ChargeEffect"].ToString();
		return  value;
	}
    /// <summary>
	/// GetJSONNodeList Like Target
	/// </summary>
	public int[] GetListDespawnChargeEffect(float target){
		List<int> list = new List<int>();
		for (int i = 0; i < GetCount(); i++) {
			if( GetDespawnChargeEffect(i) == target)
				list.Add(i);
		}
		return list.ToArray();
	}
	/// <summary>
	/// 蓄力移除时间 (=0的话切换状态移除，>0的话时间移除 -1的话进入睡眠移除) 
	/// </summary>
	public float GetDespawnChargeEffect(string key){
		JSONNode json = GetJSON (key);
		float  value;
		value = json["DespawnChargeEffect"].AsFloat;
		return  value;
	}
	/// <summary>
	/// 蓄力移除时间 (=0的话切换状态移除，>0的话时间移除 -1的话进入睡眠移除)  :From Index
	/// </summary>
	public float GetDespawnChargeEffect(int index){
		float value;
		JSONNode json = GetJSON (index);
		if(json == null){
			value = GetDespawnChargeEffect(index.ToString());
			return  value;
		}
		value = json["DespawnChargeEffect"].AsFloat;
		return  value;
	}
    /// <summary>
	/// GetJSONNodeList Like Target
	/// </summary>
	public int[] GetListChargeClip(string target){
		List<int> list = new List<int>();
		for (int i = 0; i < GetCount(); i++) {
			if( GetChargeClip(i) == target)
				list.Add(i);
		}
		return list.ToArray();
	}
	/// <summary>
	/// JSON
	/// </summary>
	public string GetChargeClip(string key){
		JSONNode json = GetJSON (key);
		string  value;
		value = json["ChargeClip"].ToString();
		return  value;
	}
	/// <summary>
	/// JSON :From Index
	/// </summary>
	public string GetChargeClip(int index){
		string value;
		JSONNode json = GetJSON (index);
		if(json == null){
			value = GetChargeClip(index.ToString());
			return  value;
		}
		value = json["ChargeClip"].ToString();
		return  value;
	}
    /// <summary>
	/// GetJSONNodeList Like Target
	/// </summary>
	public int[] GetListChargeTime(float target){
		List<int> list = new List<int>();
		for (int i = 0; i < GetCount(); i++) {
			if( GetChargeTime(i) == target)
				list.Add(i);
		}
		return list.ToArray();
	}
	/// <summary>
	/// 蓄力时间 (=0立即跳转到移动,>=的话时间到跳转到移动，<=的话等待触发) 
	/// </summary>
	public float GetChargeTime(string key){
		JSONNode json = GetJSON (key);
		float  value;
		value = json["ChargeTime"].AsFloat;
		return  value;
	}
	/// <summary>
	/// 蓄力时间 (=0立即跳转到移动,>=的话时间到跳转到移动，<=的话等待触发)  :From Index
	/// </summary>
	public float GetChargeTime(int index){
		float value;
		JSONNode json = GetJSON (index);
		if(json == null){
			value = GetChargeTime(index.ToString());
			return  value;
		}
		value = json["ChargeTime"].AsFloat;
		return  value;
	}
    /// <summary>
	/// GetJSONNodeList Like Target
	/// </summary>
	public int[] GetListMoveingEffect(string target){
		List<int> list = new List<int>();
		for (int i = 0; i < GetCount(); i++) {
			if( GetMoveingEffect(i) == target)
				list.Add(i);
		}
		return list.ToArray();
	}
	/// <summary>
	/// 移动特效 (null=没有特效) 
	/// </summary>
	public string GetMoveingEffect(string key){
		JSONNode json = GetJSON (key);
		string  value;
		value = json["MoveingEffect"].ToString();
		return  value;
	}
	/// <summary>
	/// 移动特效 (null=没有特效)  :From Index
	/// </summary>
	public string GetMoveingEffect(int index){
		string value;
		JSONNode json = GetJSON (index);
		if(json == null){
			value = GetMoveingEffect(index.ToString());
			return  value;
		}
		value = json["MoveingEffect"].ToString();
		return  value;
	}
    /// <summary>
	/// GetJSONNodeList Like Target
	/// </summary>
	public int[] GetListDespawnMoveingEffect(float target){
		List<int> list = new List<int>();
		for (int i = 0; i < GetCount(); i++) {
			if( GetDespawnMoveingEffect(i) == target)
				list.Add(i);
		}
		return list.ToArray();
	}
	/// <summary>
	/// 移动特效移除时间 (=0的话切换状态移除，>0的话时间移除) 
	/// </summary>
	public float GetDespawnMoveingEffect(string key){
		JSONNode json = GetJSON (key);
		float  value;
		value = json["DespawnMoveingEffect"].AsFloat;
		return  value;
	}
	/// <summary>
	/// 移动特效移除时间 (=0的话切换状态移除，>0的话时间移除)  :From Index
	/// </summary>
	public float GetDespawnMoveingEffect(int index){
		float value;
		JSONNode json = GetJSON (index);
		if(json == null){
			value = GetDespawnMoveingEffect(index.ToString());
			return  value;
		}
		value = json["DespawnMoveingEffect"].AsFloat;
		return  value;
	}
    /// <summary>
	/// GetJSONNodeList Like Target
	/// </summary>
	public int[] GetListMoveTime(float target){
		List<int> list = new List<int>();
		for (int i = 0; i < GetCount(); i++) {
			if( GetMoveTime(i) == target)
				list.Add(i);
		}
		return list.ToArray();
	}
	/// <summary>
	/// 移动时间 (=0的话立即到达目的地， >0的话通过移动速度到达目的地后进入命中状态) 
	/// </summary>
	public float GetMoveTime(string key){
		JSONNode json = GetJSON (key);
		float  value;
		value = json["MoveTime"].AsFloat;
		return  value;
	}
	/// <summary>
	/// 移动时间 (=0的话立即到达目的地， >0的话通过移动速度到达目的地后进入命中状态)  :From Index
	/// </summary>
	public float GetMoveTime(int index){
		float value;
		JSONNode json = GetJSON (index);
		if(json == null){
			value = GetMoveTime(index.ToString());
			return  value;
		}
		value = json["MoveTime"].AsFloat;
		return  value;
	}
    /// <summary>
	/// GetJSONNodeList Like Target
	/// </summary>
	public int[] GetListMoveSpeed(float target){
		List<int> list = new List<int>();
		for (int i = 0; i < GetCount(); i++) {
			if( GetMoveSpeed(i) == target)
				list.Add(i);
		}
		return list.ToArray();
	}
	/// <summary>
	/// 移动速度
	/// </summary>
	public float GetMoveSpeed(string key){
		JSONNode json = GetJSON (key);
		float  value;
		value = json["MoveSpeed"].AsFloat;
		return  value;
	}
	/// <summary>
	/// 移动速度 :From Index
	/// </summary>
	public float GetMoveSpeed(int index){
		float value;
		JSONNode json = GetJSON (index);
		if(json == null){
			value = GetMoveSpeed(index.ToString());
			return  value;
		}
		value = json["MoveSpeed"].AsFloat;
		return  value;
	}
    /// <summary>
	/// GetJSONNodeList Like Target
	/// </summary>
	public int[] GetListMoveClip(string target){
		List<int> list = new List<int>();
		for (int i = 0; i < GetCount(); i++) {
			if( GetMoveClip(i) == target)
				list.Add(i);
		}
		return list.ToArray();
	}
	/// <summary>
	/// JSON
	/// </summary>
	public string GetMoveClip(string key){
		JSONNode json = GetJSON (key);
		string  value;
		value = json["MoveClip"].ToString();
		return  value;
	}
	/// <summary>
	/// JSON :From Index
	/// </summary>
	public string GetMoveClip(int index){
		string value;
		JSONNode json = GetJSON (index);
		if(json == null){
			value = GetMoveClip(index.ToString());
			return  value;
		}
		value = json["MoveClip"].ToString();
		return  value;
	}
    /// <summary>
	/// GetJSONNodeList Like Target
	/// </summary>
	public int[] GetListHitEffect(string target){
		List<int> list = new List<int>();
		for (int i = 0; i < GetCount(); i++) {
			if( GetHitEffect(i) == target)
				list.Add(i);
		}
		return list.ToArray();
	}
	/// <summary>
	/// 命中特效 (null=没有特效) 
	/// </summary>
	public string GetHitEffect(string key){
		JSONNode json = GetJSON (key);
		string  value;
		value = json["HitEffect"].ToString();
		return  value;
	}
	/// <summary>
	/// 命中特效 (null=没有特效)  :From Index
	/// </summary>
	public string GetHitEffect(int index){
		string value;
		JSONNode json = GetJSON (index);
		if(json == null){
			value = GetHitEffect(index.ToString());
			return  value;
		}
		value = json["HitEffect"].ToString();
		return  value;
	}
    /// <summary>
	/// GetJSONNodeList Like Target
	/// </summary>
	public int[] GetListHitEffectFollowHitTargetPos(int target){
		List<int> list = new List<int>();
		for (int i = 0; i < GetCount(); i++) {
			if( GetHitEffectFollowHitTargetPos(i) == target)
				list.Add(i);
		}
		return list.ToArray();
	}
	/// <summary>
	/// 命中的特效是否持续跟随目标点
	/// </summary>
	public int GetHitEffectFollowHitTargetPos(string key){
		JSONNode json = GetJSON (key);
		int  value;
		value = json["HitEffectFollowHitTargetPos"].AsInt;
		return  value;
	}
	/// <summary>
	/// 命中的特效是否持续跟随目标点 :From Index
	/// </summary>
	public int GetHitEffectFollowHitTargetPos(int index){
		int value;
		JSONNode json = GetJSON (index);
		if(json == null){
			value = GetHitEffectFollowHitTargetPos(index.ToString());
			return  value;
		}
		value = json["HitEffectFollowHitTargetPos"].AsInt;
		return  value;
	}
    /// <summary>
	/// GetJSONNodeList Like Target
	/// </summary>
	public int[] GetListLookChargePos(int target){
		List<int> list = new List<int>();
		for (int i = 0; i < GetCount(); i++) {
			if( GetLookChargePos(i) == target)
				list.Add(i);
		}
		return list.ToArray();
	}
	/// <summary>
	/// 注视起点 (0=不注视，1=注视) 
	/// </summary>
	public int GetLookChargePos(string key){
		JSONNode json = GetJSON (key);
		int  value;
		value = json["LookChargePos"].AsInt;
		return  value;
	}
	/// <summary>
	/// 注视起点 (0=不注视，1=注视)  :From Index
	/// </summary>
	public int GetLookChargePos(int index){
		int value;
		JSONNode json = GetJSON (index);
		if(json == null){
			value = GetLookChargePos(index.ToString());
			return  value;
		}
		value = json["LookChargePos"].AsInt;
		return  value;
	}
    /// <summary>
	/// GetJSONNodeList Like Target
	/// </summary>
	public int[] GetListDespawnHitEffect(float target){
		List<int> list = new List<int>();
		for (int i = 0; i < GetCount(); i++) {
			if( GetDespawnHitEffect(i) == target)
				list.Add(i);
		}
		return list.ToArray();
	}
	/// <summary>
	/// 命中特效移除时间 (=0的话切换状态移除，>0的话时间移除) 
	/// </summary>
	public float GetDespawnHitEffect(string key){
		JSONNode json = GetJSON (key);
		float  value;
		value = json["DespawnHitEffect"].AsFloat;
		return  value;
	}
	/// <summary>
	/// 命中特效移除时间 (=0的话切换状态移除，>0的话时间移除)  :From Index
	/// </summary>
	public float GetDespawnHitEffect(int index){
		float value;
		JSONNode json = GetJSON (index);
		if(json == null){
			value = GetDespawnHitEffect(index.ToString());
			return  value;
		}
		value = json["DespawnHitEffect"].AsFloat;
		return  value;
	}
    /// <summary>
	/// GetJSONNodeList Like Target
	/// </summary>
	public int[] GetListHitNextStateTime(float target){
		List<int> list = new List<int>();
		for (int i = 0; i < GetCount(); i++) {
			if( GetHitNextStateTime(i) == target)
				list.Add(i);
		}
		return list.ToArray();
	}
	/// <summary>
	/// 命中后等待多久切换状态 (>=0进行状态跳转，<0等待事件触发) 
	/// </summary>
	public float GetHitNextStateTime(string key){
		JSONNode json = GetJSON (key);
		float  value;
		value = json["HitNextStateTime"].AsFloat;
		return  value;
	}
	/// <summary>
	/// 命中后等待多久切换状态 (>=0进行状态跳转，<0等待事件触发)  :From Index
	/// </summary>
	public float GetHitNextStateTime(int index){
		float value;
		JSONNode json = GetJSON (index);
		if(json == null){
			value = GetHitNextStateTime(index.ToString());
			return  value;
		}
		value = json["HitNextStateTime"].AsFloat;
		return  value;
	}
    /// <summary>
	/// GetJSONNodeList Like Target
	/// </summary>
	public int[] GetListHitNextState(int target){
		List<int> list = new List<int>();
		for (int i = 0; i < GetCount(); i++) {
			if( GetHitNextState(i) == target)
				list.Add(i);
		}
		return list.ToArray();
	}
	/// <summary>
	/// 命中后跳转到哪个状态 (1=Sleep,2=Charge,3=Moveing) 
	/// </summary>
	public int GetHitNextState(string key){
		JSONNode json = GetJSON (key);
		int  value;
		value = json["HitNextState"].AsInt;
		return  value;
	}
	/// <summary>
	/// 命中后跳转到哪个状态 (1=Sleep,2=Charge,3=Moveing)  :From Index
	/// </summary>
	public int GetHitNextState(int index){
		int value;
		JSONNode json = GetJSON (index);
		if(json == null){
			value = GetHitNextState(index.ToString());
			return  value;
		}
		value = json["HitNextState"].AsInt;
		return  value;
	}
    /// <summary>
	/// GetJSONNodeList Like Target
	/// </summary>
	public int[] GetListHitChildSkillPrefabName(string target){
		List<int> list = new List<int>();
		for (int i = 0; i < GetCount(); i++) {
			if( GetHitChildSkillPrefabName(i) == target)
				list.Add(i);
		}
		return list.ToArray();
	}
	/// <summary>
	/// 命中后生成子技能 (null) 
	/// </summary>
	public string GetHitChildSkillPrefabName(string key){
		JSONNode json = GetJSON (key);
		string  value;
		value = json["HitChildSkillPrefabName"].ToString();
		return  value;
	}
	/// <summary>
	/// 命中后生成子技能 (null)  :From Index
	/// </summary>
	public string GetHitChildSkillPrefabName(int index){
		string value;
		JSONNode json = GetJSON (index);
		if(json == null){
			value = GetHitChildSkillPrefabName(index.ToString());
			return  value;
		}
		value = json["HitChildSkillPrefabName"].ToString();
		return  value;
	}
    /// <summary>
	/// GetJSONNodeList Like Target
	/// </summary>
	public int[] GetListHitClip(string target){
		List<int> list = new List<int>();
		for (int i = 0; i < GetCount(); i++) {
			if( GetHitClip(i) == target)
				list.Add(i);
		}
		return list.ToArray();
	}
	/// <summary>
	/// JSON
	/// </summary>
	public string GetHitClip(string key){
		JSONNode json = GetJSON (key);
		string  value;
		value = json["HitClip"].ToString();
		return  value;
	}
	/// <summary>
	/// JSON :From Index
	/// </summary>
	public string GetHitClip(int index){
		string value;
		JSONNode json = GetJSON (index);
		if(json == null){
			value = GetHitClip(index.ToString());
			return  value;
		}
		value = json["HitClip"].ToString();
		return  value;
	}
    /// <summary>
	/// GetJSONNodeList Like Target
	/// </summary>
	public int[] GetListStartCostPower(float target){
		List<int> list = new List<int>();
		for (int i = 0; i < GetCount(); i++) {
			if( GetStartCostPower(i) == target)
				list.Add(i);
		}
		return list.ToArray();
	}
	/// <summary>
	/// 初始消耗
	/// </summary>
	public float GetStartCostPower(string key){
		JSONNode json = GetJSON (key);
		float  value;
		value = json["StartCostPower"].AsFloat;
		return  value;
	}
	/// <summary>
	/// 初始消耗 :From Index
	/// </summary>
	public float GetStartCostPower(int index){
		float value;
		JSONNode json = GetJSON (index);
		if(json == null){
			value = GetStartCostPower(index.ToString());
			return  value;
		}
		value = json["StartCostPower"].AsFloat;
		return  value;
	}
    /// <summary>
	/// GetJSONNodeList Like Target
	/// </summary>
	public int[] GetListContinuePower(float target){
		List<int> list = new List<int>();
		for (int i = 0; i < GetCount(); i++) {
			if( GetContinuePower(i) == target)
				list.Add(i);
		}
		return list.ToArray();
	}
	/// <summary>
	/// 持续消耗能量
	/// </summary>
	public float GetContinuePower(string key){
		JSONNode json = GetJSON (key);
		float  value;
		value = json["ContinuePower"].AsFloat;
		return  value;
	}
	/// <summary>
	/// 持续消耗能量 :From Index
	/// </summary>
	public float GetContinuePower(int index){
		float value;
		JSONNode json = GetJSON (index);
		if(json == null){
			value = GetContinuePower(index.ToString());
			return  value;
		}
		value = json["ContinuePower"].AsFloat;
		return  value;
	}
    /// <summary>
	/// GetJSONNodeList Like Target
	/// </summary>
	public int[] GetListSkillTargetObjectEnterSkillAddBuffs(int[] target){
		List<int> list = new List<int>();
		for (int i = 0; i < GetCount(); i++) {
			if( GetSkillTargetObjectEnterSkillAddBuffs(i) == target)
				list.Add(i);
		}
		return list.ToArray();
	}
	/// <summary>
	/// 技能目标对象进入技能范围后添加的Buff
	/// </summary>
	public int[] GetSkillTargetObjectEnterSkillAddBuffs(string key){
		JSONNode json = GetJSON (key);
		int[]  value;
		value = JsonRead.AsIntS(json["SkillTargetObjectEnterSkillAddBuffs"]);
		return  value;
	}
	/// <summary>
	/// 技能目标对象进入技能范围后添加的Buff :From Index
	/// </summary>
	public int[] GetSkillTargetObjectEnterSkillAddBuffs(int index){
		int[] value;
		JSONNode json = GetJSON (index);
		if(json == null){
			value = GetSkillTargetObjectEnterSkillAddBuffs(index.ToString());
			return  value;
		}
		value = JsonRead.AsIntS(json["SkillTargetObjectEnterSkillAddBuffs"]);
		return  value;
	}
    /// <summary>
	/// GetJSONNodeList Like Target
	/// </summary>
	public int[] GetListSkillTargetObjectExitSkillRemoveBuffs(int[] target){
		List<int> list = new List<int>();
		for (int i = 0; i < GetCount(); i++) {
			if( GetSkillTargetObjectExitSkillRemoveBuffs(i) == target)
				list.Add(i);
		}
		return list.ToArray();
	}
	/// <summary>
	/// 技能目标对象进入技能范围后添加的Buff
	/// </summary>
	public int[] GetSkillTargetObjectExitSkillRemoveBuffs(string key){
		JSONNode json = GetJSON (key);
		int[]  value;
		value = JsonRead.AsIntS(json["SkillTargetObjectExitSkillRemoveBuffs"]);
		return  value;
	}
	/// <summary>
	/// 技能目标对象进入技能范围后添加的Buff :From Index
	/// </summary>
	public int[] GetSkillTargetObjectExitSkillRemoveBuffs(int index){
		int[] value;
		JSONNode json = GetJSON (index);
		if(json == null){
			value = GetSkillTargetObjectExitSkillRemoveBuffs(index.ToString());
			return  value;
		}
		value = JsonRead.AsIntS(json["SkillTargetObjectExitSkillRemoveBuffs"]);
		return  value;
	}
    /// <summary>
	/// GetJSONNodeList Like Target
	/// </summary>
	public int[] GetListDelayTime(float target){
		List<int> list = new List<int>();
		for (int i = 0; i < GetCount(); i++) {
			if( GetDelayTime(i) == target)
				list.Add(i);
		}
		return list.ToArray();
	}
	/// <summary>
	/// 延迟时间
	/// </summary>
	public float GetDelayTime(string key){
		JSONNode json = GetJSON (key);
		float  value;
		value = json["DelayTime"].AsFloat;
		return  value;
	}
	/// <summary>
	/// 延迟时间 :From Index
	/// </summary>
	public float GetDelayTime(int index){
		float value;
		JSONNode json = GetJSON (index);
		if(json == null){
			value = GetDelayTime(index.ToString());
			return  value;
		}
		value = json["DelayTime"].AsFloat;
		return  value;
	}
    /// <summary>
	/// GetJSONNodeList Like Target
	/// </summary>
	public int[] GetListAttackOnly(int target){
		List<int> list = new List<int>();
		for (int i = 0; i < GetCount(); i++) {
			if( GetAttackOnly(i) == target)
				list.Add(i);
		}
		return list.ToArray();
	}
	/// <summary>
	/// 单体攻击
	/// </summary>
	public int GetAttackOnly(string key){
		JSONNode json = GetJSON (key);
		int  value;
		value = json["AttackOnly"].AsInt;
		return  value;
	}
	/// <summary>
	/// 单体攻击 :From Index
	/// </summary>
	public int GetAttackOnly(int index){
		int value;
		JSONNode json = GetJSON (index);
		if(json == null){
			value = GetAttackOnly(index.ToString());
			return  value;
		}
		value = json["AttackOnly"].AsInt;
		return  value;
	}
    /// <summary>
	/// GetJSONNodeList Like Target
	/// </summary>
	public int[] GetListBaseAttackTime(float target){
		List<int> list = new List<int>();
		for (int i = 0; i < GetCount(); i++) {
			if( GetBaseAttackTime(i) == target)
				list.Add(i);
		}
		return list.ToArray();
	}
	/// <summary>
	/// 攻击间隔
	/// </summary>
	public float GetBaseAttackTime(string key){
		JSONNode json = GetJSON (key);
		float  value;
		value = json["BaseAttackTime"].AsFloat;
		return  value;
	}
	/// <summary>
	/// 攻击间隔 :From Index
	/// </summary>
	public float GetBaseAttackTime(int index){
		float value;
		JSONNode json = GetJSON (index);
		if(json == null){
			value = GetBaseAttackTime(index.ToString());
			return  value;
		}
		value = json["BaseAttackTime"].AsFloat;
		return  value;
	}
    /// <summary>
	/// GetJSONNodeList Like Target
	/// </summary>
	public int[] GetListChildSkill(int target){
		List<int> list = new List<int>();
		for (int i = 0; i < GetCount(); i++) {
			if( GetChildSkill(i) == target)
				list.Add(i);
		}
		return list.ToArray();
	}
	/// <summary>
	/// 子技能
	/// </summary>
	public int GetChildSkill(string key){
		JSONNode json = GetJSON (key);
		int  value;
		value = json["ChildSkill"].AsInt;
		return  value;
	}
	/// <summary>
	/// 子技能 :From Index
	/// </summary>
	public int GetChildSkill(int index){
		int value;
		JSONNode json = GetJSON (index);
		if(json == null){
			value = GetChildSkill(index.ToString());
			return  value;
		}
		value = json["ChildSkill"].AsInt;
		return  value;
	}

	#endregion
}